<?php

namespace jlynnlee\HyperfGenFullstack\Helper;

class TypeMapper
{
    public static function getCastType(string $type): string
    {
        return match ($type) {
            'tinyint(1)' => 'boolean',
            'json' => 'array',
            'datetime', 'timestamp' => 'datetime',
            'int', 'integer', 'bigint' => 'integer',
            'decimal', 'float', 'double' => 'double',
            default => 'string',
        };
    }

    public static function mapToSchemaMethod(string $type): string
    {
        $mapping = [
            'string' => 'string',
            'int' => 'integer',
            'integer' => 'integer',
            'bigint' => 'bigInteger',
            'biginteger' => 'bigInteger',
            'text' => 'text',
            'datetime' => 'dateTime',
            'json' => 'json',
        ];

        return $mapping[strtolower($type)] ?? $type;
    }
}